// 引入连接 userStore 的behavior
import userBehavior from './behavior'
import { requpdateUserInfo, reqUploadFile } from '@/api/user'
// import { getStorage } from '../../../../utils/storage'
import { toast } from '@/utils/extendApi'
Page({
  // 使用userBehavior
  behaviors: [userBehavior],
  // 页面的初始数据
  data: {
    isShowPopup: false // 控制更新用户昵称的弹框显示与否
  },
  // 获取微信头像的事件回调
  async chooseAvatar(event) {
    // 1.获取头像的临时路径(会失效)
    const { avatarUrl } = event.detail
    // 2.将临时路径上传到服务器获取永久路径
    /* wx.uploadFile({
      filePath: avatarUrl, // 要上传的文件资源路径
      name: 'file', // 文件对应的key
      url: 'https://gmall-prod.atguigu.cn/mall-api/fileUpload', // 开发者服务器地址
      header: {
        token: getStorage('token')
      },
      success: (res) => {
        // 将返回的JSON数据转换成对象格式
        res.data = JSON.parse(res.data)
        // 3.更新当前组件中头像路径
        this.setData({
          'userInfo.headimgurl': res.data.data
        })
      },
      fail: () => {
        toast('头像更新失败')
      }
    }) */
    // 使用mina-request提供的上传文件的接口方法
    const result = await reqUploadFile(avatarUrl, 'file')
    if (result.code === 200) {
      // 更新当前组件中头像路径
      this.setData({
        'userInfo.headimgurl': result.data
      })
    }
  },
  // 点击保存按钮的事件回调
  async save() {
    // 1.调用接口将用户头像和昵称上传到服务器中
    const result = await requpdateUserInfo(this.data.userInfo)
    if (result.code === 200) {
      // 2.通知仓库重新获取用户信息并存储
      await this.getUserInfo()
      // 3.跳转到我的页面
      await wx.switchTab({
        url: '/pages/my/my'
      })
      // 4.提示用户信息存储成功
      toast('信息更新成功')
    } else {
      toast('信息更新失败')
    }
  },
  // 获取用户昵称,并更新
  getNickName(event) {
    this.setData({
      'userInfo.nickname': event.detail.value.nickname, // 更新用户昵称
      isShowPopup: false // 关闭弹窗
    })
  },
  // 显示修改昵称弹框
  onUpdateNickName() {
    this.setData({
      isShowPopup: true,
      'userInfo.nickname': this.data.userInfo.nickname // 解决表单被重置数据问题
    })
  },
  // 弹框取消按钮
  cancelForm() {
    this.setData({
      isShowPopup: false
    })
  }
})
